// 公共样式
export const commonStyle = {
    rotate: 0,
    opacity: 1,
}

export const commonAttr = {
    animations: [],
    events: {},
    groupStyle: {}, // 当一个组件成为 Group 的子组件时使用
    isLock: false, // 是否锁定组件
    collapseName: 'style', // 编辑组件时记录当前使用的是哪个折叠面板，再次回来时恢复上次打开的折叠面板，优化用户体验
    linkage: {
        duration: 0, // 过渡持续时间
        data: [ // 组件联动
            {
                id: '', // 联动的组件 id
                label: '', // 联动的组件名称
                event: '', // 监听事件
                style: [{ key: '', value: '' }], // 监听的事件触发时，需要改变的属性
            },
        ],
    },
}

// 编辑器左侧组件列表
const list = [
    {
        component: 'VText',
        key: '',
        notEditable: false,
        label: '文字',
        propValue: '文字',
        icon: 'wenben',
        request: {
            method: 'GET',
            data: [],
            url: '',
            series: false, // 是否定时发送请求
            time: 1000, // 定时更新时间
            paramType: '', // string object array
            requestCount: 0, // 请求次数限制，0 为无限
        },
        style: {
            position: 'absolute',
            width: 62,
            height: 37,
            fontSize: 26,
            fontWeight: 550,
            lineHeight: '1',
            letterSpacing: 0,
            textAlign: '',
            color: '',
            borderWidth: 0,
            borderColor: '#000',
            borderStyle: 'solid',
        },
    },
    {
        component: 'VText',
        key: '{{编码}}',
        notEditable: true,
        label: '编码',
        propValue: '编码',
        icon: 'wenben',
        request: {
            method: 'GET',
            data: [],
            url: '',
            series: false, // 是否定时发送请求
            time: 1000, // 定时更新时间
            paramType: '', // string object array
            requestCount: 0, // 请求次数限制，0 为无限
        },
        style: {
            position: 'absolute',
            width: 112,
            height: 22,
            fontSize: 14,
            fontWeight: 550,
            lineHeight: '1',
            letterSpacing: 0,
            textAlign: '',
            color: '',
            borderWidth: 0,
            borderColor: '#000',
            borderStyle: 'solid',
        },
    },
    {
        component: 'VText',
        key: '{{名称}}',
        notEditable: true,
        label: '名称',
        propValue: '名称',
        icon: 'wenben',
        request: {
            method: 'GET',
            data: [],
            url: '',
            series: false, // 是否定时发送请求
            time: 1000, // 定时更新时间
            paramType: '', // string object array
            requestCount: 0, // 请求次数限制，0 为无限
        },
        style: {
            position: 'absolute',
            width: 112,
            height: 22,
            fontSize: 14,
            fontWeight: 550,
            lineHeight: '1',
            letterSpacing: 0,
            textAlign: '',
            color: '',
            borderWidth: 0,
            borderColor: '#000',
            borderStyle: 'solid',
        },
    },
    {
        component: 'Picture',
        key: 'qr',
        imgId: 'code',
        label: '编码',
        icon: 'tupian',
        propValue: {
            url: require('@/assets/qr.png'),
            flip: {
                horizontal: false,
                vertical: false,
            },
        },
        style: {
            position: 'absolute',
            width: 110,
            height: 110,
            borderRadius: '',
        },
    },
]

for (let i = 0, len = list.length; i < len; i++) {
    const item = list[i]
    item.style = { ...commonStyle, ...item.style }
    list[i] = { ...commonAttr, ...item }
}

export default list
